#ifndef UC_BRMETRAV_H
#define UC_BRMETRAV_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrtrav.h"


// forward class declarations
class UcBrMesh2d;
class UcBrElement2d;


class DllImpExp UcBrMesh2dElement2dTraverser : public UcBrTraverser
{
public:
    UCRX_DECLARE_MEMBERS(UcBrMesh2dElement2dTraverser);
    UcBrMesh2dElement2dTraverser();
    UcBrMesh2dElement2dTraverser(const UcBrMesh2dElement2dTraverser& src);
    ~UcBrMesh2dElement2dTraverser();
    
    // Assignment operator
    UcBrMesh2dElement2dTraverser& operator =(const UcBrMesh2dElement2dTraverser& src);

    // Queries & Initialisers
    UcBr::ErrorStatus   setMeshAndElement(const UcBrElement2d& element2d);
    UcBr::ErrorStatus   setMesh         (const UcBrMesh2d& mesh2d);
    UcBr::ErrorStatus   getMesh         (UcBrMesh2d& mesh2d) const;
    UcBr::ErrorStatus   setElement		(const UcBrElement2d& element2d);
    UcBr::ErrorStatus   getElement		(UcBrElement2d& element2d) const;
};


#endif

